package dletc.IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 使用FileInputStream + FileOutputStream完成文件的拷贝
 * 拷贝的过程应该是一边读，一边写。
 * 使用以上的字节流拷贝文件的时候，文件类型随意，万能的，什么样的文件都能拷贝。
 *
 */
public class Copy01 {

	public static void main(String[] args) {
		// Copy文件 字节流
		FileInputStream fis = null;
		FileOutputStream fos =null;
		
		try {
			//创建一个输入流
			fis = new FileInputStream("D:\\中软学习\\视频\\day31 递归\\文件夹遍历12.mp4");
			
			//创建一个输出流
			fos = new FileOutputStream("E:\\文件夹遍历12.mp4");
			
			//最核心的一边读，一边写。
			byte[] by = new byte[1024 * 1024];
			int read;
			while((read = fis.read(by)) != -1){
				fos.write(by,0,read);
				
			}
			
			
			//输入流最后要刷新
			fos.flush();
		} catch (FileNotFoundException e) {

			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			//关闭流 分开处理异常 不要一起处理  一起处理容易上面发生异常，下面流没关。
			//先开的后关。
			if(fos != null){
				try {
					fos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(fis != null){
				try {
					fis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			
			
		}

	}

}
